package view.controller;

import interfaz.TDAManejoDatos;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

import view.userinteface.Menu;
import beans.BeanCliente;
import beans.BeanMarca;
import beans.BeanRodamiento;

public class ControllerPrincipal {
	private static ControllerPrincipal instancia;
	private static String hostname = "localhost";
	TDAManejoDatos rmiController;
	
	public static void main(String[] args)
	{
		new ControllerPrincipal();
	}

	public static ControllerPrincipal getInstancia(){
		if (instancia==null){
			instancia = new ControllerPrincipal();
		}
		return instancia;
	}
	
	public ControllerPrincipal(){
		instancia = this;
		if(getStub()){
			Menu menu = new Menu();
			menu.setVisible(true);
		}
	}
		
	private boolean getStub() {
		try {
			rmiController = (TDAManejoDatos)Naming.lookup ("//"+hostname+"/rmiController");
			System.out.println("GetStub");
			return true;
		} catch (Exception e) {
			//e.printStackTrace();
			System.out.println("No me puedo conectar al server");
			JOptionPane.showMessageDialog(null, "Error no me puedo conectar al server \n "+"//"+hostname+"/rmiController");
		}
		return false;
	}
	
	public boolean altaCliente(BeanCliente dtoCliente){
			try {
				return rmiController.setCliente(dtoCliente);
				
			} catch (RemoteException e) {
				e.printStackTrace();
			}
			return false;		
			
	}
	
	
	public boolean altaRodamiento(BeanRodamiento beanRodamiento){
			try {
				return rmiController.setRodamiento(beanRodamiento);
				
			} catch (RemoteException e) {
				e.printStackTrace();
			}
			return false;		
			
	}
	
	public List<BeanMarca> cargarComboMarcas(){
		try {
			return rmiController.getListaMarcas();
			
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		return new ArrayList<BeanMarca>();	
}
}
